var input = File.ReadAllLines(Path.Combine(Path.GetDirectoryName(Util.CurrentQueryPath), "..", "day1.txt")).Select(int.Parse).ToList();
IEnumerable<(T, T)> Pairs(IList items) {
for (var outer = 0; outer < input.Count() -1 ; outer++)
for (var inner = outer + 1; inner < input.Count(); inner++)
yield return (items[outer], items[inner]);
}
var pair = Pairs(input).First(p => p.Item1 + p.Item2 == 2020);
var part1 = pair.Item1 * pair.Item2;
part1.Dump();
IEnumerable<(T, T, T)> Triples(IList items)
{
for (var x = 0; x < input.Count() - 2; x++)
for (var y = x + 1; y < input.Count() - 1; y++)
for (var z = y + 1; z < input.Count(); z++)
yield return (items[x], items[y], items[z]);
}
var triple = Triples(input).First(p => p.Item1 + p.Item2 + p.Item3 == 2020);
var part2 = triple.Item1 * triple.Item2 * triple.Item3;
part2.Dump();